package com.newly.driver.sdk.device.video.cloud.record.tencent;

import cn.hutool.core.annotation.Alias;
import cn.hutool.core.util.ObjectUtil;
import com.tencentcloudapi.iotvideoindustry.v20201201.models.GetTimeTemplatesResponse;
import com.tencentcloudapi.iotvideoindustry.v20201201.models.TimeTemplateItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author gjm guan
 * @date 2021/10/27 16:10
 * @desc 查询时间模板
 * Templates	Array of TimeTemplateItem	时间模板列表 注意：此字段可能返回 null，表示取不到有效值。
 * TotalCount	Integer	时间模板总数
 * RequestId	String	唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
 */
@Data
public class TXQueryTimeTempResp {

    /**
     * 时间模板总数
     */
    @ApiModelProperty("时间模板总数")
    @Alias("TotalCount")
    private Long totalCount;

    /**
     * 时间模板列表
     */
    @ApiModelProperty("时间模板列表")
    @Alias("Templates")
    private List<TXTimeTemplateItem> templates;

    /**
     * 唯一请求 ID
     */
    @ApiModelProperty("唯一请求 ID")
    @Alias("RequestId")
    private String requestId;

    public TXQueryTimeTempResp(GetTimeTemplatesResponse resp) {
        this.totalCount = resp.getTotalCount();
        this.requestId = resp.getRequestId();

        TimeTemplateItem[] templates = resp.getTemplates();
        this.templates = new ArrayList<>();
        if (!ObjectUtil.isEmpty(templates)) {
            for (TimeTemplateItem template : templates) {
                this.templates.add(new TXTimeTemplateItem(template));
            }
        }
    }

    public TXQueryTimeTempResp() {
    }
}
